/**
 * Created by ercha on 2015/12/1.
 */


//载入动画
//<![CDATA[
//$(window).load(function() { // makes sure the whole site is loaded
//    $('body').append("<div id=\"loader-wrapper\">"
//        + "<div id=\"loader\"></div>"
//        + "</div>");
//    $('#loader').fadeOut(); // will first fade out the loading animation
//    $('#loader-wrapper').delay(350).fadeOut('slow'); // will fade out the white DIV that covers the website.
//    $('body').delay(350).css({'overflow-y':'visible'});
//});
//]]>

//creator: ercha
//date: 2015/11/20
//功能：选中 radio
//参数：
//  name: 控件的 name
//  choosedStr：选中的值
function setRadio(name, choosed){
    $("input[name=" + name + "][value=" + choosed + "]").attr("checked",'checked');
}

function getRadio(name){
    return $("input[name=" + name + "]:checked").val();
}

function getRadioText(name){
    return $("input[name=" + name + "]:checked").text();
}

//功能：选中页面中的 checkBox
//参数：
//  name: 控件的 name
//  choosedStr：选中的字符串，以逗号分隔
function setCheckBox(name, choosedStr){
    var csArr = choosedStr.split(',');
    //console.info("csArr: " + csArr);

    for(var i=0; i<csArr.length; ++i){
        $("input[name=" + name + "][value=" + csArr[i] + "]").attr('checked', 'checked');
    }
}

//将数据库的路径转换成 mid size 图片的 url
function getImgUrl(str, size){
    return "/images/@" + size + str;
    //var filename, s;
    //if(str.indexOf("/") != -1){
    //    s = "/";
    //} else{
    //    s = "\\";
    //}
    //s += "images" +
    //var idx = str.lastIndexOf(s);
    //filename = str.substr(idx);
    //
    //return str.substr(0, idx) + s + size + filename;
}


function errorMessage(message, time){
    if(arguments.length < 2 ){
        time = 10086000;
    }
    swal({
        title: "",
        text: message,
        type: "error",
        confirmButtonText: "确定",
        timer: time
    });
}

function successMessage(message, callback, time){
    if(arguments.length < 1){
        message = "操作成功！";
    }
    if(arguments.length < 2){
        callback = function(){};
    }
    if(arguments.length < 3 ){
        time = 2000;
    }
    swal({
        title: "",
        text: message,
        type: "success",
        confirmButtonText: "确定",
        timer: time
    }, callback
    );
}

function waitMessage(title){
    if(arguments.length < 1){
        title = "正在处理，请稍候...";
    }
    swal({
        title: title,
        type: "info",
        showCancelButton: false,
        closeOnConfirm: false,
        showLoaderOnConfirm: true,
        showConfirmButton: false
    });
}

function infoMessage(title, text){
    if(arguments.length < 1){
        title = text = "";
    } else if(arguments.length <2){
        text = "";
    }
    swal({
        title: title,
        text: text,
        confirmButtonText: "确定"
    });
    //swal({
    //    title: title,
    //    text: text,
    //    type: "info",
    //    confirmButtonText: "确定",
    //    showLoaderOnConfirm: false,
    //    showConfirmButton: true
    //});
}

/**
 * 利用 sweetalert 创建表单
 * @param param
 * 必须有 fieldset 的 id
 * 默认第一个字段的 Placeholder 为空，因此如果要显示，要传入参数
 */
function sweetForm(param){
    if(!param.hasOwnProperty("id")){
        console.error("缺少 id!!");
        return ;
    }
    if(!param.hasOwnProperty("title")){
        param.title = "";
    }
    if(!param.hasOwnProperty("text")){
        param.text = "";
    }
    if(!param.hasOwnProperty("confirmButtonText")){
        param.confirmButtonText = "确定";
    }
    if(!param.hasOwnProperty("inputPlaceholder")){
        param.inputPlaceholder = "";
    }
    if(!param.hasOwnProperty("callback")){
        param.callback = function(){};
    }
    swal({
        title: param.title,
        text: param.text,
        type: "input",
        confirmButtonText: param.confirmButtonText,
        cancelButtonText: "取消",
        html: true,
        showLoaderOnConfirm: false,
        showCancelButton: true,
        closeOnConfirm: false,
        closeOnCancel: true,
        inputPlaceholder: param.inputPlaceholder
    },param.callback);

    var pre;
    $("fieldset").each(function(){
        if($(this).attr("id") == undefined){
            pre = $(this);
            pre.replaceWith($("#"+param.id));
            $("#"+param.id).removeClass("hidden");
        }
    });
}

function swAjax(param){
    if(!param.hasOwnProperty("title")){
        param.title = "";
    }
    if(!param.hasOwnProperty("text")){
        param.text = "";
    }
    if(!param.hasOwnProperty("confirmButtonText")){
        param.confirmButtonText = "确定";
    }
    if(!param.hasOwnProperty("cancelButtonText")){
        param.cancelButtonText = "取消";
    }
    if(!param.hasOwnProperty("callback")){
        param.callback = function(){};
    }
    swal({
            title: param.title,
            text: param.text,
            type: "info",
            confirmButtonText: param.confirmButtonText,
            cancelButtonText: param.cancelButtonText,
            showCancelButton: true,
            closeOnConfirm: false,
            showLoaderOnConfirm: true
        },
        param.callback
    );
}

//jquery validate 的 errorPlacement 函数
//error 是一个 <label> 块，label 的内容是错误信息
function errorPlacement(error, element){
    //获取防止错误信息的 span
    //1. 找到祖先 .form-group(ff 无法用 closest 找到 label)
    //2. 找到同级的最后一个元素，即放置错误信息的 <div>
    //3. 找到 span
    var e = $(element).closest(".form-group").children().siblings().last().find("span");
    if(e==undefined || e==null) return;
    e.text(error.text());

    //设置 form_group 的错误样式: element.closest(".form-group").addClass("has-error");
    $(element).closest(".form-group").addClass("has-error");
}
//jquery validate 的 success 函数
function success(error, element){
    var e = $(element).closest(".form-group").children().siblings().last().find("span");
    if(e==undefined || e==null) return;
    e.text("");
    $(element).closest(".form-group").removeClass("has-error");
}

function hasData(data){
    return data!=null && data!=undefined && data!="";
}